home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume16 / gnuplot2.02 / patch7 < prev    next >
Encoding:
Internet Message Format  |  1991-01-05  |  62.1 KB

  1. From: rjl@monu1.cc.monash.edu.au (Russell Lang)
  2. Newsgroups: comp.sources.misc
  3. Subject: v16i017:  Gnuplot 2.0 patch 2, 7 of 7
  4. Message-ID: <1991Jan5.041003.2705@sparky.IMD.Sterling.COM>
  5. Date: 5 Jan 91 04:10:03 GMT
  6. Approved: kent@sparky.imd.sterling.com
  7. X-Checksum-Snefru: 2223734d 71ca90d5 76aed934 c24e28e6
  8.  
  9. Submitted-by: Russell Lang <rjl@monu1.cc.monash.edu.au>
  10. Posting-number: Volume 16, Issue 17
  11. Archive-name: gnuplot2.02/patch7
  12. Patch-To: gnuplot2.0: Volume 11, Issue 65-79
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then unpack
  16. # it by saving it into a file and typing "sh file".  To overwrite existing
  17. # files, type "sh file -c".  You can also feed this as standard input via
  18. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  19. # will see the following message at the end:
  20. #        "End of shell archive."
  21. # Contents:  patch2f
  22. # Wrapped by eln272v@monu1 on Wed Dec 19 11:58:19 1990
  23. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  24. if test -f patch2f -a "${1}" != "-c" ; then 
  25.   echo shar: Will not over-write existing file \"patch2f\"
  26. else
  27. echo shar: Extracting \"patch2f\" \(59778 characters\)
  28. sed "s/^X//" >patch2f <<'END_OF_patch2f'
  29. Xdiff -cr ./docs/gnuplot.doc ../gnuplot2.02/docs/gnuplot.doc
  30. X*** ./docs/gnuplot.doc    Tue Sep 18 14:58:01 1990
  31. X--- ../gnuplot2.02/docs/gnuplot.doc    Thu Nov 29 11:04:53 1990
  32. X***************
  33. X*** 5,11
  34. X   are not the same as those written in CAPS).  All command names may be
  35. X   abbreviated, as long as the abbreviation is not ambiguous.  Any number
  36. X   of commands may appear on a line, separated by semicolons (;). 
  37. X! 
  38. X   Any command-line arguments are assumed to be names of files containing 
  39. X   gnuplot commands. Each file is loaded with the `load` command, in the
  40. X   order specified. Gnuplot exits after the last file is processed.
  41. X
  42. X--- 5,11 -----
  43. X   are not the same as those written in CAPS).  All command names may be
  44. X   abbreviated, as long as the abbreviation is not ambiguous.  Any number
  45. X   of commands may appear on a line, separated by semicolons (;). 
  46. X!  
  47. X   Any command-line arguments are assumed to be names of files containing 
  48. X   gnuplot commands, with the exception of standard X11 arguments, which
  49. X   are processed first. Each file is loaded with the `load` command, in the
  50. X***************
  51. X*** 7,13
  52. X   of commands may appear on a line, separated by semicolons (;). 
  53. X  
  54. X   Any command-line arguments are assumed to be names of files containing 
  55. X!  gnuplot commands. Each file is loaded with the `load` command, in the
  56. X   order specified. Gnuplot exits after the last file is processed.
  57. X  
  58. X   Commands may extend over several input lines, by ending each line but
  59. X
  60. X--- 7,14 -----
  61. X   of commands may appear on a line, separated by semicolons (;). 
  62. X   
  63. X   Any command-line arguments are assumed to be names of files containing 
  64. X!  gnuplot commands, with the exception of standard X11 arguments, which
  65. X!  are processed first. Each file is loaded with the `load` command, in the
  66. X   order specified. Gnuplot exits after the last file is processed.
  67. X   
  68. X   Commands may extend over several input lines, by ending each line but
  69. X***************
  70. X*** 9,15
  71. X   Any command-line arguments are assumed to be names of files containing 
  72. X   gnuplot commands. Each file is loaded with the `load` command, in the
  73. X   order specified. Gnuplot exits after the last file is processed.
  74. X! 
  75. X   Commands may extend over several input lines, by ending each line but
  76. X   the last with a backslash (\). The backslash must be the LAST
  77. X   character on each line. The effect is as if the backslash and newline
  78. X
  79. X--- 10,16 -----
  80. X   gnuplot commands, with the exception of standard X11 arguments, which
  81. X   are processed first. Each file is loaded with the `load` command, in the
  82. X   order specified. Gnuplot exits after the last file is processed.
  83. X!  
  84. X   Commands may extend over several input lines, by ending each line but
  85. X   the last with a backslash (\). The backslash must be the LAST
  86. X   character on each line. The effect is as if the backslash and newline
  87. X***************
  88. X*** 16,22
  89. X   were not there. That is, no white space is implied, nor is a comment
  90. X   terminated. Therefore, commenting out a continued line comments out
  91. X   the entire command (see `comment`).
  92. X! 
  93. X   In this documentation, curly braces ({}) denote optional arguments to
  94. X   many commands.
  95. X  
  96. X
  97. X--- 17,23 -----
  98. X   were not there. That is, no white space is implied, nor is a comment
  99. X   terminated. Therefore, commenting out a continued line comments out
  100. X   the entire command (see `comment`).
  101. X!  
  102. X   In this documentation, curly braces ({}) denote optional arguments to
  103. X   many commands.
  104. X   
  105. X***************
  106. X*** 19,25
  107. X  
  108. X   In this documentation, curly braces ({}) denote optional arguments to
  109. X   many commands.
  110. X! 
  111. X   For help on any topic, type 'help' followed by the name of the topic.
  112. X  2 cd
  113. X  ?cd
  114. X
  115. X--- 20,26 -----
  116. X   
  117. X   In this documentation, curly braces ({}) denote optional arguments to
  118. X   many commands.
  119. X!  
  120. X   For help on any topic, type 'help' followed by the name of the topic.
  121. X  2 cd
  122. X  ?cd
  123. X***************
  124. X*** 58,64
  125. X   
  126. X   On Unix and MS-DOS, GNUHELP may be defined to be the pathname of the 
  127. X   HELP file (gnuplot.gih).
  128. X! 
  129. X   On VMS, the symbol GNUPLOT$HELP should be defined as the name of 
  130. X   the help library for gnuplot.
  131. X   
  132. X
  133. X--- 59,65 -----
  134. X   
  135. X   On Unix and MS-DOS, GNUHELP may be defined to be the pathname of the 
  136. X   HELP file (gnuplot.gih).
  137. X!  
  138. X   On VMS, the symbol GNUPLOT$HELP should be defined as the name of 
  139. X   the help library for gnuplot.
  140. X   
  141. X***************
  142. X*** 446,452
  143. X   
  144. X           load 'work.gnu'
  145. X           load "func.dat"
  146. X! 
  147. X   The `load` command is performed implicitly on any file names given as
  148. X   arguments to gnuplot. These are loaded in the order specified, and
  149. X   then gnuplot exits. 
  150. X
  151. X--- 447,453 -----
  152. X   
  153. X           load 'work.gnu'
  154. X           load "func.dat"
  155. X!  
  156. X   The `load` command is performed implicitly on any file names given as
  157. X   arguments to gnuplot. These are loaded in the order specified, and
  158. X   then gnuplot exits. 
  159. X***************
  160. X*** 481,488
  161. X   
  162. X     plot {ranges}  <function> {title} {style} {, <function> {title} {style}...}
  163. X   
  164. X!  Where <function> is either a mathematical expression or the name of a
  165. X!  data file enclosed in quotes.  User-defined functions and variables
  166. X   may also be defined here. 
  167. X   
  168. X   Curly braces {,} denote optional items.
  169. X
  170. X--- 482,490 -----
  171. X   
  172. X     plot {ranges}  <function> {title} {style} {, <function> {title} {style}...}
  173. X   
  174. X!  Where <function> is either a mathematical expression, the name of a
  175. X!  data file enclosed in quotes, or a pair of mathematical expressions in
  176. X!  the case of parametric functions.  User-defined functions and variables
  177. X   may also be defined here. 
  178. X   
  179. X   Curly braces {,} denote optional items.
  180. X***************
  181. X*** 508,514
  182. X   be specified either as an X and Y value separated by blank space, or
  183. X   as just the Y value, in which case the program will use the number
  184. X   of the coordinate as the X value.  Coordinate numbers start at 0
  185. X!  and are incremented for each data point read.  Lines beginning with #
  186. X   (or ! on VMS) will be treated as comments and ignored. 
  187. X  
  188. X   NOTE that blank lines cause a break in the input, and if the plot
  189. X
  190. X--- 510,517 -----
  191. X   be specified either as an X and Y value separated by blank space, or
  192. X   as just the Y value, in which case the program will use the number
  193. X   of the coordinate as the X value.  Coordinate numbers start at 0
  194. X!  and are incremented for each data point read.  To specify other 
  195. X!  formats, see `plot datafile using`.  Lines beginning with #
  196. X   (or ! on VMS) will be treated as comments and ignored. 
  197. X   
  198. X   NOTE that blank lines cause a break in the input, and if the plot
  199. X***************
  200. X*** 510,516
  201. X   of the coordinate as the X value.  Coordinate numbers start at 0
  202. X   and are incremented for each data point read.  Lines beginning with #
  203. X   (or ! on VMS) will be treated as comments and ignored. 
  204. X! 
  205. X   NOTE that blank lines cause a break in the input, and if the plot
  206. X   style is `lines` or `linespoints` (see `plot style`) there will be no
  207. X   line drawn between the preceding and following points. This does not
  208. X
  209. X--- 513,519 -----
  210. X   and are incremented for each data point read.  To specify other 
  211. X   formats, see `plot datafile using`.  Lines beginning with #
  212. X   (or ! on VMS) will be treated as comments and ignored. 
  213. X!  
  214. X   NOTE that blank lines cause a break in the input, and if the plot
  215. X   style is `lines` or `linespoints` (see `plot style`) there will be no
  216. X   line drawn between the preceding and following points. This does not
  217. X***************
  218. X*** 530,535
  219. X    1975   34
  220. X    1980   24
  221. X    1985   10
  222. X  3 ranges
  223. X  ?plot ranges
  224. X  ?ranges
  225. X
  226. X--- 533,596 -----
  227. X    1975   34
  228. X    1980   24
  229. X    1985   10
  230. X+ 4 using
  231. X+ ?plot datafile using
  232. X+ ?plot data-file using
  233. X+ ?using
  234. X+  The format of data within a file can be selected with the `using` 
  235. X+  option.  The `xy` and `yx` specify the order of the `x` and `y` 
  236. X+  variables in the data file. To reverse the variables specify `yx`.
  237. X+  To specify that the datafile should contain one variable specify `y`.
  238. X+  
  239. X+  Syntax:
  240. X+  
  241. X+          plot "datafile" { using { xy | yx | y } {"scanf string"} } ...
  242. X+  
  243. X+  If the `xy`, `yx` or `y` option is omitted, `xy` is used.
  244. X+  If the scanf string is omitted, the default of `"%f%f"` is used.
  245. X+  
  246. X+  Examples:
  247. X+  
  248. X+          plot "MyData" using yx "%*f%f%*20[^\n]%f" with lines
  249. X+  This causes data to be read from the file "MyData" using the format 
  250. X+  `yx "%*f%f%*20[^\n]%f"`.  The meaning of this format is: `%*f` 
  251. X+  ignore the first number, `%f` then read in the second and assign to y 
  252. X+  (the `yx` option of using), `%*20[^\n]` then ignore 20 non-newline 
  253. X+  characters, `%f` then read in the x value.
  254. X+  
  255. X+          plot "MyData" using "%f%f", "MyData" using "%f%*f%f"
  256. X+  Causes gnuplot to plot the second and third columns of MyData versus
  257. X+  the first column.
  258. X+  
  259. X+  Note: gnuplot first reads a line of the data file into a buffer and 
  260. X+  then does a 
  261. X+          sscanf(input_buffer, scanf_string, &x, &y);
  262. X+  where `x` and `y` are of type `float`.  Any scanf string that specifies
  263. X+  two `float` numbers may be used.
  264. X+ 3 parametric
  265. X+ ?plot parametric
  266. X+ ?parametric
  267. X+  When in parametric mode (`set parametric`) mathematical expressions must
  268. X+  be given in pairs:
  269. X+   plot sin(t),t**2
  270. X+  
  271. X+  Data files are plotted as before, except the parametric function
  272. X+  must be fully specified before a data file is given as a plot.  In
  273. X+  other words, the x parametric function (sin(t) above) and the y 
  274. X+  parametric function (t**2 above) must not be interrupted with any 
  275. X+  modifiers or data functions; doing so will generate a syntax error
  276. X+  stating that the parametric function is not fully specified.
  277. X+  
  278. X+  Ranges take on a different meaning when in parametric mode.  The
  279. X+  first specifiable range on the plot command is the trange, the
  280. X+  next the xrange, and the last is the yrange.  The following plot
  281. X+  shows setting the trange to [-pi:pi], the xrange to [-1.3:1.3]
  282. X+  and the yrange to [-1:1] for the duration of the plot:
  283. X+   plot [-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2
  284. X+  
  285. X+  Other modifiers, such as `with` and `title` are required after
  286. X+  the function has been fully specified:
  287. X+   plot sin(t),t**2 with linespoints title 'Parametric example'
  288. X  3 ranges
  289. X  ?plot ranges
  290. X  ?ranges
  291. X***************
  292. X*** 629,635
  293. X   This plots sin(x) and cos(x) with linespoints, using the
  294. X   same line type but different point types:
  295. X           plot sin(x) with linesp 1 3, cos(x) with linesp 1 4
  296. X! 
  297. X   This plots file "data" with points style 3:
  298. X           plot "data" with points 1 3 
  299. X   Note that the line style must be specified in order to specify the
  300. X
  301. X--- 690,696 -----
  302. X   This plots sin(x) and cos(x) with linespoints, using the
  303. X   same line type but different point types:
  304. X           plot sin(x) with linesp 1 3, cos(x) with linesp 1 4
  305. X!  
  306. X   This plots file "data" with points style 3:
  307. X           plot "data" with points 1 3 
  308. X   Note that the line style must be specified in order to specify the
  309. X***************
  310. X*** 742,748
  311. X   arrow. To change any attribute of an existing arrow, use the `set
  312. X   arrow` command with the appropriate tag, and specify the parts of the
  313. X   arrow to be changed. 
  314. X! 
  315. X   Arrows outside the plotted boundaries are permitted but may cause
  316. X   device errors; use at your own risk.
  317. X   
  318. X
  319. X--- 803,809 -----
  320. X   arrow. To change any attribute of an existing arrow, use the `set
  321. X   arrow` command with the appropriate tag, and specify the parts of the
  322. X   arrow to be changed. 
  323. X!  
  324. X   Arrows outside the plotted boundaries are permitted but may cause
  325. X   device errors; use at your own risk.
  326. X   
  327. X***************
  328. X*** 796,802
  329. X   
  330. X   This disables autoscaling of the X and Y axes.
  331. X           set noautoscale
  332. X! 
  333. X   This disables autoscaling of the X axis only.
  334. X           set noautoscale x
  335. X  3 clip
  336. X
  337. X--- 857,863 -----
  338. X   
  339. X   This disables autoscaling of the X and Y axes.
  340. X           set noautoscale
  341. X!  
  342. X   This disables autoscaling of the X axis only.
  343. X           set noautoscale x
  344. X  4 parametric mode
  345. X***************
  346. X*** 799,804
  347. X  
  348. X   This disables autoscaling of the X axis only.
  349. X           set noautoscale x
  350. X  3 clip
  351. X  ?set clip
  352. X  ?set noclip
  353. X
  354. X--- 860,890 -----
  355. X   
  356. X   This disables autoscaling of the X axis only.
  357. X           set noautoscale x
  358. X+ 4 parametric mode
  359. X+ ?autoscale parametric
  360. X+ ?set autoscale t
  361. X+  When in parametric mode (`set parametric`) the xrange is as
  362. X+  fully scalable as the yrange.  In other words, in parametric
  363. X+  mode the X axis can be automatically scaled to fit the range
  364. X+  of the parametric function that is being plotted.  Of course,
  365. X+  the Y axis can also be automatically scaled just as in the
  366. X+  non-parametric case.  If autoscaling on the X axis is not set,
  367. X+  the current X range is used.
  368. X+  
  369. X+  When there is a mix of data files and functions, the xrange of
  370. X+  the functions is selected as that of the data files if autoscale
  371. X+  is true for X.  While this keeps the behavior compatible with
  372. X+  non-parametric plotting, it may not be retained in the future.
  373. X+  The problem is that, in parametric mode, the x and y ranges are
  374. X+  not as distinguishable as in the non-parametric mode and this
  375. X+  behavior may not be the most useful.
  376. X+  
  377. X+  For completeness sake a last command `set autoscale t` is accepted.  
  378. X+  However, the effect of this "scaling" is very minor.  When
  379. X+  gnuplot determines that the t range would be empty it makes a
  380. X+  small adjustment if autoscaling is true.  Otherwise, gnuplot
  381. X+  gives an error.  Such behavior may, in fact, not be very useful
  382. X+  and the command `set autoscale t` is certainly questionable.  
  383. X  3 clip
  384. X  ?set clip
  385. X  ?set noclip
  386. X***************
  387. X*** 815,821
  388. X   Syntax:
  389. X           set clip points
  390. X           set noclip points
  391. X! 
  392. X   GNUPLOT can also clip lines that connect a point that is in range
  393. X   with a point that is out of range. The default is to draw the 
  394. X   in-range portion of such lines (i.e., to "clip" them). With the 
  395. X
  396. X--- 901,907 -----
  397. X   Syntax:
  398. X           set clip points
  399. X           set noclip points
  400. X!  
  401. X   GNUPLOT can also clip lines that connect a point that is in range
  402. X   with a point that is out of range. The default is to draw the 
  403. X   in-range portion of such lines (i.e., to "clip" them). With the 
  404. X***************
  405. X*** 826,832
  406. X   Syntax:
  407. X           set clip one
  408. X           set noclip one
  409. X! 
  410. X   GNUPLOT does not show lines that are wholly out of range. Some lines
  411. X   may have both endpoints out of range, but pass through the plotting
  412. X   area. By default, GNUPLOT does not draw these lines (`set noclip
  413. X
  414. X--- 912,918 -----
  415. X   Syntax:
  416. X           set clip one
  417. X           set noclip one
  418. X!  
  419. X   GNUPLOT does not show lines that are wholly out of range. Some lines
  420. X   may have both endpoints out of range, but pass through the plotting
  421. X   area. By default, GNUPLOT does not draw these lines (`set noclip
  422. X***************
  423. X*** 831,837
  424. X   may have both endpoints out of range, but pass through the plotting
  425. X   area. By default, GNUPLOT does not draw these lines (`set noclip
  426. X   two`). They may be drawn (and clipped) with `set clip two`.
  427. X! 
  428. X   Syntax:
  429. X           set clip two
  430. X           set noclip two
  431. X
  432. X--- 917,923 -----
  433. X   may have both endpoints out of range, but pass through the plotting
  434. X   area. By default, GNUPLOT does not draw these lines (`set noclip
  435. X   two`). They may be drawn (and clipped) with `set clip two`.
  436. X!  
  437. X   Syntax:
  438. X           set clip two
  439. X           set noclip two
  440. X***************
  441. X*** 835,841
  442. X   Syntax:
  443. X           set clip two
  444. X           set noclip two
  445. X! 
  446. X   To check the state of all forms of clipping, use
  447. X           show clip
  448. X  
  449. X
  450. X--- 921,927 -----
  451. X   Syntax:
  452. X           set clip two
  453. X           set noclip two
  454. X!  
  455. X   To check the state of all forms of clipping, use
  456. X           show clip
  457. X   
  458. X***************
  459. X*** 838,844
  460. X  
  461. X   To check the state of all forms of clipping, use
  462. X           show clip
  463. X! 
  464. X   The following forms are also permitted. These allow backward
  465. X   compatibility with older versions. 
  466. X          set clip
  467. X
  468. X--- 924,930 -----
  469. X   
  470. X   To check the state of all forms of clipping, use
  471. X           show clip
  472. X!  
  473. X   The following forms are also permitted. These allow backward
  474. X   compatibility with older versions. 
  475. X          set clip
  476. X***************
  477. X*** 966,972
  478. X   label. To change any attribute of an existing label, use the `set
  479. X   label` command with the appropriate tag, and specify the parts of the
  480. X   label to be changed. 
  481. X! 
  482. X   By default, the text is placed flush left against point x,y. If you
  483. X   want to adjust the way the label is positioned with respect to the
  484. X   point x,y, add the parameter <justification>, which may be `left`,
  485. X
  486. X--- 1052,1058 -----
  487. X   label. To change any attribute of an existing label, use the `set
  488. X   label` command with the appropriate tag, and specify the parts of the
  489. X   label to be changed. 
  490. X!  
  491. X   By default, the text is placed flush left against point x,y. If you
  492. X   want to adjust the way the label is positioned with respect to the
  493. X   point x,y, add the parameter <justification>, which may be `left`,
  494. X***************
  495. X*** 990,996
  496. X            set nolabel
  497. X   To show all labels (in tag order) use:
  498. X            show label
  499. X! 
  500. X   The Imagen driver allows \\ in a string to specify a newline.
  501. X  3 logscale
  502. X  ?set logscale
  503. X
  504. X--- 1076,1082 -----
  505. X            set nolabel
  506. X   To show all labels (in tag order) use:
  507. X            show label
  508. X!  
  509. X   The Imagen driver allows \\ in a string to specify a newline.
  510. X  3 logscale
  511. X  ?set logscale
  512. X***************
  513. X*** 1041,1046
  514. X   
  515. X   The filename must be enclosed in quotes.  If the filename is
  516. X   omitted, output will be sent to the standard output. 
  517. X  3 polar
  518. X  ?set polar
  519. X  ?show polar
  520. X
  521. X--- 1127,1160 -----
  522. X   
  523. X   The filename must be enclosed in quotes.  If the filename is
  524. X   omitted, output will be sent to the standard output. 
  525. X+ 3 parametric
  526. X+ ?set parametric
  527. X+ ?show parametric
  528. X+ ?parametric
  529. X+  The `set parametric` command changes the meaning of the plot from
  530. X+  normal functions to parametric functions.  The command 
  531. X+  `set noparametric` changes the plotting style back to normal, 
  532. X+  single-valued expression plotting.
  533. X+  
  534. X+  Parametric functions are determined by a pair of functions 
  535. X+  operating on a `parameter`, such as sin(t),cos(t) (which describes 
  536. X+  a circle if `t` ranges over [-pi:pi]).  Hence it takes two 
  537. X+  parametric function specifications in terms of the parametric 
  538. X+  dummy argument to describe a single graph.  
  539. X+  
  540. X+  The total set of possible plots is a superset of the simple f(x) 
  541. X+  style plots, since the two functions can describe both the 
  542. X+  x and y values to be computed separately.  In fact, plots of 
  543. X+  the type t,f(t) are equivalent to those produced with f(x) since 
  544. X+  the x values are computed with just the identity function.  Note 
  545. X+  that the order the parametric function is specified is xfunction,
  546. X+  yfunction and that each operates over the common parametric domain.
  547. X+  
  548. X+  Also, the `set parametric` function implies a new range of values.  
  549. X+  Whereas the normal f(x) style plotting assumes an xrange and yrange,
  550. X+  the parametric mode additionally specifies a trange.  The trange 
  551. X+  may be specified directly with `set trange`, by specifying the 
  552. X+  range on the plot command, or indirectly with `set autoscale t`.
  553. X  3 polar
  554. X  ?set polar
  555. X  ?show polar
  556. X***************
  557. X*** 1112,1118
  558. X           set size 0.5,0.5
  559. X   To show the size use:
  560. X           show size
  561. X! 
  562. X   For the LaTeX and Fig terminals the default size (scale factor 1,1)
  563. X   is 5 inches wide by 3 inches high. Note that the size of the plot
  564. X   includes the space used by the labels; the plotting area itself is
  565. X
  566. X--- 1226,1232 -----
  567. X           set size 0.5,0.5
  568. X   To show the size use:
  569. X           show size
  570. X!  
  571. X   For the LaTeX and Fig terminals the default size (scale factor 1,1)
  572. X   is 5 inches wide by 3 inches high. Note that the size of the plot
  573. X   includes the space used by the labels; the plotting area itself is
  574. X***************
  575. X*** 1188,1194
  576. X   
  577. X   The first clears the title (default).
  578. X   The second form sets the title to "title-text" (without the quotes).
  579. X! 
  580. X   The Imagen driver allows \\ in a string to specify a newline.
  581. X  3 variables
  582. X  ?show variables
  583. X
  584. X--- 1302,1308 -----
  585. X   
  586. X   The first clears the title (default).
  587. X   The second form sets the title to "title-text" (without the quotes).
  588. X!  
  589. X   The Imagen driver allows \\ in a string to specify a newline.
  590. X  3 trange
  591. X  ?set trange
  592. X***************
  593. X*** 1190,1195
  594. X   The second form sets the title to "title-text" (without the quotes).
  595. X  
  596. X   The Imagen driver allows \\ in a string to specify a newline.
  597. X  3 variables
  598. X  ?show variables
  599. X   The `show variables` command lists all user-defined variables and
  600. X
  601. X--- 1304,1331 -----
  602. X   The second form sets the title to "title-text" (without the quotes).
  603. X   
  604. X   The Imagen driver allows \\ in a string to specify a newline.
  605. X+ 3 trange
  606. X+ ?set trange
  607. X+ ?show trange
  608. X+ ?trange
  609. X+  The `set trange` command sets the parametric range used to compute
  610. X+  x and y values when in parametric mode.  If not in parametric mode
  611. X+  (see `set parametric`) then this range is not used.  This command 
  612. X+  does not affect XY autoscaling or XY ranges.
  613. X+  
  614. X+  This range may also be specified on the `plot` command line when
  615. X+  in parametric mode.
  616. X+  
  617. X+  Syntax:
  618. X+          set trange [{<tmin> : <tmax>}]
  619. X+  
  620. X+  Where <tmin> and <tmax> terms are expressions or constants.
  621. X+  
  622. X+  Both the <tmin> and <tmax> terms are optional. Anything omitted will
  623. X+  not be changed, so 
  624. X+          set trange [:10]
  625. X+  changes tmax to 10 without affecting tmin. 
  626. X+ 3 xtics
  627. X  3 variables
  628. X  ?show variables
  629. X   The `show variables` command lists all user-defined variables and
  630. X***************
  631. X*** 1211,1217
  632. X   
  633. X   The first clears the x-axis label (default).
  634. X   The second form sets the x-axis label to "label" (without the quotes).
  635. X! 
  636. X   The Imagen driver allows \\ in a string to specify a newline.
  637. X  3 xrange
  638. X  ?set xrange
  639. X
  640. X--- 1347,1353 -----
  641. X   
  642. X   The first clears the x-axis label (default).
  643. X   The second form sets the x-axis label to "label" (without the quotes).
  644. X!  
  645. X   The Imagen driver allows \\ in a string to specify a newline.
  646. X  3 xrange
  647. X  ?set xrange
  648. X***************
  649. X*** 1241,1247
  650. X   xtics` and `set noxtics` command. The x-axis tic marks may be turned
  651. X   off with the `set noxtics` command. They may be turned on (the
  652. X   default state) with `set xtics`.
  653. X! 
  654. X   If you prefer your own series of tic marks, you may use the form
  655. X            set xtics <start>, <incr>{, <end>}
  656. X   The curly braces indicate that the <end> parameter is optional. 
  657. X
  658. X--- 1377,1383 -----
  659. X   xtics` and `set noxtics` command. The x-axis tic marks may be turned
  660. X   off with the `set noxtics` command. They may be turned on (the
  661. X   default state) with `set xtics`.
  662. X!  
  663. X   If you prefer your own series of tic marks, you may use the form
  664. X            set xtics <start>, <incr>{, <end>}
  665. X   The curly braces indicate that the <end> parameter is optional. 
  666. X***************
  667. X*** 1251,1257
  668. X   increment may be negative. Example:
  669. X             set xtics 0,.5,10
  670. X   makes tics 0, 0.5, 1, 1.5, ..., 9.5, 10.
  671. X! 
  672. X   If you need arbitrary tic positions, or non-numeric tic labels, 
  673. X   any non-empty set of tic positions and labels may be given with this
  674. X   format:
  675. X
  676. X--- 1387,1393 -----
  677. X   increment may be negative. Example:
  678. X             set xtics 0,.5,10
  679. X   makes tics 0, 0.5, 1, 1.5, ..., 9.5, 10.
  680. X!  
  681. X   If you need arbitrary tic positions, or non-numeric tic labels, 
  682. X   any non-empty set of tic positions and labels may be given with this
  683. X   format:
  684. X***************
  685. X*** 1266,1272
  686. X            set xtics ("low" 0, "medium" 50, "high" 100)
  687. X            set xtics (1,2,4,8,16,32,64,128,256,512,1024)
  688. X            set xtics ("bottom" 0, "" 10, "top" 20)
  689. X! 
  690. X   Tics will only be plotted when in range.
  691. X  
  692. X   The `set ytics` and `set noytics` commands work identically.
  693. X
  694. X--- 1402,1408 -----
  695. X            set xtics ("low" 0, "medium" 50, "high" 100)
  696. X            set xtics (1,2,4,8,16,32,64,128,256,512,1024)
  697. X            set xtics ("bottom" 0, "" 10, "top" 20)
  698. X!  
  699. X   Tics will only be plotted when in range.
  700. X   
  701. X   The `set ytics` and `set noytics` commands work identically.
  702. X***************
  703. X*** 1268,1274
  704. X            set xtics ("bottom" 0, "" 10, "top" 20)
  705. X  
  706. X   Tics will only be plotted when in range.
  707. X! 
  708. X   The `set ytics` and `set noytics` commands work identically.
  709. X   See also `set format` command.
  710. X  3 ylabel
  711. X
  712. X--- 1404,1410 -----
  713. X            set xtics ("bottom" 0, "" 10, "top" 20)
  714. X   
  715. X   Tics will only be plotted when in range.
  716. X!  
  717. X   The `set ytics` and `set noytics` commands work identically.
  718. X   See also `set format` command.
  719. X  3 xzeroaxis
  720. X***************
  721. X*** 1271,1276
  722. X  
  723. X   The `set ytics` and `set noytics` commands work identically.
  724. X   See also `set format` command.
  725. X  3 ylabel
  726. X  ?set ylabel
  727. X  ?show ylabel
  728. X
  729. X--- 1407,1434 -----
  730. X   
  731. X   The `set ytics` and `set noytics` commands work identically.
  732. X   See also `set format` command.
  733. X+ 3 xzeroaxis
  734. X+ ?set xzeroaxis
  735. X+ ?show xzeroaxis
  736. X+ ?xzeroaxis
  737. X+  `set xzeroaxis` draws the x-axis.  By default, this option is on.
  738. X+  `set noxzeroaxis` causes gnuplot to omit the x-axis.
  739. X+  
  740. X+  Syntax:
  741. X+          set xzeroaxis
  742. X+          set noxzeroaxis
  743. X+          show xzeroaxis
  744. X+ 3 yzeroaxis
  745. X+ ?set yzeroaxis
  746. X+ ?show yzeroaxis
  747. X+ ?yzeroaxis
  748. X+  `set yzeroaxis` draws the y-axis.  By default, this option is on.
  749. X+  `set noyzeroaxis` causes gnuplot to omit the y-axis.
  750. X+  
  751. X+  Syntax:
  752. X+          set yzeroaxis
  753. X+          set noyzeroaxis
  754. X+          show yzeroaxis
  755. X  3 ylabel
  756. X  ?set ylabel
  757. X  ?show ylabel
  758. X***************
  759. X*** 1338,1343
  760. X   Syntax:
  761. X           set zero <expression>
  762. X           show zero
  763. X  2 shell
  764. X  ?shell
  765. X   The `shell` command spawns an interactive shell.  To return to
  766. X
  767. X--- 1496,1513 -----
  768. X   Syntax:
  769. X           set zero <expression>
  770. X           show zero
  771. X+ 3 zeroaxis
  772. X+ ?set zeroaxis
  773. X+ ?show zeroaxis
  774. X+ ?zeroaxis
  775. X+  `set zeroaxis` draws the x-axis and y-axis.  By default, this option is on.
  776. X+  `set noxzeroaxis` causes gnuplot to omit the axes.
  777. X+  
  778. X+  Syntax:
  779. X+          set zeroaxis
  780. X+          set nozeroaxis
  781. X+          show zeroaxis
  782. X+  See `set xzeroaxis` and `set yzeroaxis`.
  783. X  2 shell
  784. X  ?shell
  785. X   The `shell` command spawns an interactive shell.  To return to
  786. XCommon subdirectories: ./docs/latextut and ../gnuplot2.02/docs/latextut
  787. Xdiff -cr ./docs/titlepage.ms ../gnuplot2.02/docs/titlepage.ms
  788. X*** ./docs/titlepage.ms    Fri Mar  9 00:48:30 1990
  789. X--- ../gnuplot2.02/docs/titlepage.ms    Wed Nov 28 09:15:45 1990
  790. X***************
  791. X*** 7,13
  792. X  .AU
  793. X  Thomas Williams & Colin Kelley
  794. X  .br
  795. X! John Campbell, David Kotz, and Russell Lang (Version 2.0)
  796. X  .AI
  797. X  pixar!info-gnuplot@sun.com
  798. X  \*(DY
  799. X
  800. X--- 7,13 -----
  801. X  .AU
  802. X  Thomas Williams & Colin Kelley
  803. X  .br
  804. X! John Campbell, David Kotz, and Russell Lang (Version 2.0 patchlevel 2)
  805. X  .AI
  806. X  pixar!info-gnuplot@sun.com
  807. X  \*(DY
  808. Xdiff -cr ./docs/titlepage.tex ../gnuplot2.02/docs/titlepage.tex
  809. X*** ./docs/titlepage.tex    Fri Mar  9 00:48:31 1990
  810. X--- ../gnuplot2.02/docs/titlepage.tex    Wed Nov 28 09:15:26 1990
  811. X***************
  812. X*** 23,29
  813. X     \verb+pixar!info-gnuplot@sun.com+
  814. X  
  815. X     \vfill
  816. X!    {\small This manual is for GNUPLOT version 2.0.}
  817. X  
  818. X     \end{center}
  819. X  \newpage
  820. X
  821. X--- 23,29 -----
  822. X     \verb+pixar!info-gnuplot@sun.com+
  823. X  
  824. X     \vfill
  825. X!    {\small This manual is for GNUPLOT version 2.0 patchlevel 2.}
  826. X  
  827. X     \end{center}
  828. X  \newpage
  829. Xdiff -cr ./docs/latextut/Makefile ../gnuplot2.02/docs/latextut/Makefile
  830. X*** ./docs/latextut/Makefile    Tue Mar 27 08:59:57 1990
  831. X--- ../gnuplot2.02/docs/latextut/Makefile    Fri Dec  7 08:34:22 1990
  832. X***************
  833. X*** 1,6
  834. X  # Makefile for gnuplot LaTeX tutorial
  835. X! # To make the manual from scratch, we run latex three times
  836. X! all: tutorial.dvi
  837. X      latex tutorial
  838. X  
  839. X  # To touch it up after changes:
  840. X
  841. X--- 1,8 -----
  842. X  # Makefile for gnuplot LaTeX tutorial
  843. X! # To make the manual from scratch, we run latex two times
  844. X! all: tutorial.dvi done
  845. X! 
  846. X! done:
  847. X      latex tutorial
  848. X      echo > done
  849. X  
  850. X***************
  851. X*** 2,7
  852. X  # To make the manual from scratch, we run latex three times
  853. X  all: tutorial.dvi
  854. X      latex tutorial
  855. X  
  856. X  # To touch it up after changes:
  857. X  remake: tutorial.dvi
  858. X
  859. X--- 4,10 -----
  860. X  
  861. X  done:
  862. X      latex tutorial
  863. X+     echo > done
  864. X  
  865. X  # To touch it up after changes:
  866. X  remake: tutorial.dvi
  867. X***************
  868. X*** 13,18
  869. X  tutorial.dvi: eg1.tex eg2.tex eg3.tex eg4.tex eg5.tex eg6.tex \
  870. X      tutorial.tex header.tex
  871. X      latex tutorial
  872. X  
  873. X  .SUFFIXES: .tex .plt
  874. X  
  875. X
  876. X--- 16,22 -----
  877. X  tutorial.dvi: eg1.tex eg2.tex eg3.tex eg4.tex eg5.tex eg6.tex \
  878. X      tutorial.tex header.tex
  879. X      latex tutorial
  880. X+     rm -f done
  881. X  
  882. X  .SUFFIXES: .tex .plt
  883. X  
  884. Xdiff -cr ./term/cgi.trm ../gnuplot2.02/term/cgi.trm
  885. X*** ./term/cgi.trm    Mon Nov 26 13:07:06 1990
  886. X--- ../gnuplot2.02/term/cgi.trm    Mon Dec 17 09:59:49 1990
  887. X***************
  888. X*** 0
  889. X
  890. X--- 1,227 -----
  891. X+ /* GNUPLOT - cgi.trm */
  892. X+ /*
  893. X+  * Copyright (C) 1990 Ronald Florence
  894. X+  *
  895. X+  * Permission is hereby granted for unlimited non-commercial
  896. X+  * use of this code, on condition that the copyright
  897. X+  * notices are left intact and any modifications to the source
  898. X+  * code are noted as such.  No warranty of any kind is implied
  899. X+  * or granted for this material.
  900. X+  *
  901. X+  * This file is included by ../term.c.
  902. X+  *
  903. X+  * This terminal driver supports SCO CGI drivers
  904. X+  *
  905. X+  * AUTHOR
  906. X+  *   Ronald Florence <ron@mlfarm.com>
  907. X+  */
  908. X+ 
  909. X+ #ifdef VGA_MONO
  910. X+ static short rgb[16][3] = {
  911. X+   0,    0,      0,      /* Black        */
  912. X+   1000,    1000,    1000,    /* White    */
  913. X+   800,    800,    0,    /* Red        */
  914. X+   0,    600,    0,    /* Green    */
  915. X+   0,    800,    800,    /* Blue        */
  916. X+   1000,    1000,    400,    /* Yellow    */
  917. X+   0,    600,    600,    /* Cyan        */
  918. X+   600,    600,    600,    /* Magenta    */
  919. X+   800,    800,    0,    /* Brown    */
  920. X+   600,    600,    600,    /* Lt. Grey    */
  921. X+   400,    600,    400,    /* Dark Grey    */
  922. X+   400,    600,    1000,    /* Lt. Blue    */
  923. X+   400,    1000,    400,    /* Lt Green    */
  924. X+   400,    1000,    1000,    /* Lt Cyan    */
  925. X+   1000,    600,    400,    /* Lt Red    */
  926. X+   600,    600,    1000    /* Lt Magenta    */
  927. X+ };
  928. X+ #endif
  929. X+ 
  930. X+ #define CGI_XMAX    32767
  931. X+ #define CGI_YMAX    32767
  932. X+ #define CGI_VTIC    (CGI_YMAX / 75)
  933. X+ #define CGI_HTIC    term_tbl[term].h_tic
  934. X+ #define CGI_VCHAR    term_tbl[term].v_char
  935. X+ #define CGI_HCHAR    term_tbl[term].h_char
  936. X+ #define CRT        (gout[45] == 0)
  937. X+ #define CGICOLORS    gout[13]
  938. X+ #define CGILINES    gout[6]
  939. X+ #define CGIROTATES    gout[36]
  940. X+ #define CGITEXTALIGN    gout[48]
  941. X+ 
  942. X+ static short gout[66];
  943. X+ static short cgidev;
  944. X+ static short vect[4];
  945. X+ static short gin[19] = {
  946. X+  0,    /* default aspect ratio */
  947. X+  1,    /* solid line */
  948. X+  1,    /* line color */
  949. X+  1,    /* marker type . */
  950. X+  1,    /* marker color */
  951. X+  1,    /* graphics text font */
  952. X+  1,    /* graphics text color */
  953. X+  0,    /* fill interior style */
  954. X+  0,    /* fill style index */
  955. X+  1,    /* fill color index */
  956. X+  1     /* prompt for paper changes */
  957. X+  };
  958. X+ 
  959. X+ char    *cgidriver, *getenv();
  960. X+ 
  961. X+ 
  962. X+ CGI_init()
  963. X+ {
  964. X+   if (getenv(cgidriver = "CGIDISP") == NULL)
  965. X+     HCGI_init();
  966. X+ }
  967. X+ 
  968. X+ 
  969. X+ HCGI_init()
  970. X+ {
  971. X+   if (getenv(cgidriver = "CGIPRNT") == NULL)
  972. X+     int_error("no CGI driver", NO_CARET);
  973. X+ }
  974. X+ 
  975. X+ 
  976. X+ CGI_graphics()
  977. X+ {
  978. X+   int    i, aspect;
  979. X+   char *s;
  980. X+   short font_cap[9];
  981. X+   char    err_str[80];
  982. X+ 
  983. X+   if ( (s=getenv("ASPECT")) != NULL && (aspect=atoi(s)) >= 0 && aspect <= 3 )
  984. X+     gin[0] = aspect;
  985. X+   for (i = 0; cgidriver[i]; i++) 
  986. X+     gin[11+i] = cgidriver[i];
  987. X+   gin[18] = ' ';
  988. X+ 
  989. X+   if (v_opnwk(gin, &cgidev, gout) < 0) 
  990. X+     {
  991. X+       sprintf(err_str, "CGI error %d opening %s", -vq_error(), cgidriver);
  992. X+       int_error(err_str, NO_CARET);
  993. X+     }
  994. X+   vqt_representation(cgidev, 9, font_cap);
  995. X+   CGI_VCHAR = font_cap[8] * 3 / 2;
  996. X+   CGI_HCHAR = font_cap[7];
  997. X+   CGI_HTIC = CGI_VTIC * ((double) gout[1] / (double) gout[4]) / 
  998. X+             ((double) gout[0] / (double) gout[3]);
  999. X+ #ifdef VGA_MONO
  1000. X+   if (CGICOLORS > 2)
  1001. X+     vsc_table(cgidev, 0, CGICOLORS, rgb);
  1002. X+ #endif
  1003. X+ }
  1004. X+ 
  1005. X+ 
  1006. X+ CGI_text()
  1007. X+ {
  1008. X+   if (CRT)  
  1009. X+     {
  1010. X+       short ptin[2];
  1011. X+       char  strin[2];
  1012. X+       
  1013. X+       ptin[0] = 0;
  1014. X+       ptin[1] = 0;
  1015. X+       vrq_string(cgidev, 1, 0, ptin, strin);
  1016. X+     }
  1017. X+   v_clswk(cgidev);
  1018. X+ }
  1019. X+ 
  1020. X+ 
  1021. X+ CGI_reset()
  1022. X+ {
  1023. X+ }
  1024. X+ 
  1025. X+ 
  1026. X+ CGI_move(x, y)
  1027. X+      int x, y;
  1028. X+ {
  1029. X+   vect[0] = x;
  1030. X+   vect[1] = y;
  1031. X+ }
  1032. X+ 
  1033. X+ CGI_vector(x, y)
  1034. X+      int x, y;
  1035. X+ {
  1036. X+   vect[2] = x;
  1037. X+   vect[3] = y;
  1038. X+   v_pline(cgidev, 2, vect);
  1039. X+   vect[0] = x;
  1040. X+   vect[1] = y;
  1041. X+ }
  1042. X+ 
  1043. X+ 
  1044. X+ CGI_linetype(linetype)
  1045. X+      int linetype;
  1046. X+ {
  1047. X+   short lcolor;
  1048. X+ 
  1049. X+   if (CGICOLORS > 2) 
  1050. X+     {
  1051. X+       lcolor = (linetype + 2) % CGICOLORS + 1;
  1052. X+       vsl_color(cgidev, lcolor);
  1053. X+       vsm_color(cgidev, lcolor);
  1054. X+     }
  1055. X+   vsl_type(cgidev, (linetype < 1) ? 1 : (linetype % CGILINES) + 1);
  1056. X+ }
  1057. X+ 
  1058. X+ 
  1059. X+ CGI_put_text(x, y, str)
  1060. X+ int x, y;
  1061. X+ char *str;
  1062. X+ {
  1063. X+   v_gtext(cgidev, (short) x, (short) y, str);
  1064. X+ }
  1065. X+ 
  1066. X+ 
  1067. X+ CGI_text_angle(ang)
  1068. X+ int    ang;
  1069. X+ {
  1070. X+   if (!CGIROTATES)
  1071. X+     return FALSE;
  1072. X+                 /* angles are 1/10 degree ccw */
  1073. X+   vst_rotation(cgidev, (ang) ? 900 : 0);
  1074. X+   return TRUE;
  1075. X+ }
  1076. X+ 
  1077. X+ 
  1078. X+ CGI_justify_text(mode)
  1079. X+ enum JUSTIFY mode;
  1080. X+ {
  1081. X+   short hor_in, hor_out, vert_out;
  1082. X+ 
  1083. X+   if (!CGITEXTALIGN)
  1084. X+     return FALSE;
  1085. X+ 
  1086. X+   switch (mode)
  1087. X+     {
  1088. X+     case LEFT:   hor_in = 0; break;
  1089. X+     case CENTRE: hor_in = 1; break;
  1090. X+     case RIGHT:  hor_in = 2; break;
  1091. X+     }
  1092. X+   vst_alignment(cgidev, hor_in, 1, &hor_out, &vert_out); 
  1093. X+   return TRUE;
  1094. X+ }
  1095. X+ 
  1096. X+ 
  1097. X+ #define POINT_TYPES 6
  1098. X+ 
  1099. X+ CGI_point(x,y,num)
  1100. X+      int x, y, num;
  1101. X+ {
  1102. X+   short  point[2];
  1103. X+   static short cgimarker[POINT_TYPES] = {1, 2, 6, 4, 5, 3};
  1104. X+                           /* .  +  <> [] X  * */
  1105. X+   if (num < 0)
  1106. X+     {
  1107. X+       CGI_move(x, y);
  1108. X+       CGI_vector(x, y);
  1109. X+     }
  1110. X+   else
  1111. X+     {
  1112. X+       vsm_type(cgidev, cgimarker[num % POINT_TYPES]);
  1113. X+       point[0] = x;
  1114. X+       point[1] = y;
  1115. X+       v_pmarker(cgidev, 1, point);
  1116. X+     }
  1117. X+ }
  1118. Xdiff -cr ./term/epson.trm ../gnuplot2.02/term/epson.trm
  1119. X*** ./term/epson.trm    Mon Dec 17 09:53:09 1990
  1120. X--- ../gnuplot2.02/term/epson.trm    Wed Dec 19 09:14:16 1990
  1121. X***************
  1122. X*** 0
  1123. X
  1124. X--- 1,481 -----
  1125. X+ /* GNUPLOT - epson.trm */
  1126. X+ /*
  1127. X+  * Copyright (C) 1990   
  1128. X+  *
  1129. X+  * Permission to use, copy, and distribute this software and its
  1130. X+  * documentation for any purpose with or without fee is hereby granted, 
  1131. X+  * provided that the above copyright notice appear in all copies and 
  1132. X+  * that both that copyright notice and this permission notice appear 
  1133. X+  * in supporting documentation.
  1134. X+  *
  1135. X+  * Permission to modify the software is granted, but not the right to
  1136. X+  * distribute the modified code.  Modifications are to be distributed 
  1137. X+  * as patches to released version.
  1138. X+  *  
  1139. X+  * This software  is provided "as is" without express or implied warranty.
  1140. X+  * 
  1141. X+  * This file is included by ../term.c.
  1142. X+  *
  1143. X+  * This terminal driver supports:
  1144. X+  *  epson_lx800, nec_cp6c, nec_cp6d, nec_cp6b, starc,
  1145. X+  *  epson_60dpi, tandy_60dpi
  1146. X+  *
  1147. X+  * AUTHORS
  1148. X+  *  Russell Lang
  1149. X+  *  William Wilson
  1150. X+  *
  1151. X+  * send your comments or suggestions to (pixar!info-gnuplot@sun.com).
  1152. X+  * 
  1153. X+  */
  1154. X+ 
  1155. X+ /* The following epson lx800 driver uses generic bit mapped graphics
  1156. X+    routines to build up a bit map in memory. */
  1157. X+ /* by Russell Lang, rjl@monu1.cc.monash.edu.au */
  1158. X+ /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1159. X+ /* EPSON_init changes outfile to binary mode on PC's */
  1160. X+ 
  1161. X+ #ifdef EPSON
  1162. X+ 
  1163. X+ #define EPSONXMAX    512 
  1164. X+ #define EPSONYMAX    384
  1165. X+ 
  1166. X+ #define EPSONXLAST (EPSONXMAX - 1)
  1167. X+ #define EPSONYLAST (EPSONYMAX - 1)
  1168. X+ 
  1169. X+ #define EPSONVCHAR        FNT5X9_VCHAR      
  1170. X+ #define EPSONHCHAR        FNT5X9_HCHAR        
  1171. X+ #define EPSONVTIC        6
  1172. X+ #define EPSONHTIC        6
  1173. X+ 
  1174. X+ EPSONinit()
  1175. X+ {
  1176. X+ #ifdef PC
  1177. X+     reopen_binary();
  1178. X+ #endif
  1179. X+ #ifdef vms
  1180. X+     reopen_binary();
  1181. X+ #endif
  1182. X+ }
  1183. X+ 
  1184. X+ 
  1185. X+ EPSONgraphics()
  1186. X+ {
  1187. X+     b_charsize(FNT5X9);
  1188. X+     b_makebitmap((unsigned int)(EPSONXMAX*xsize),
  1189. X+                  (unsigned int)(EPSONYMAX*ysize),1);
  1190. X+ }
  1191. X+ 
  1192. X+ 
  1193. X+ EPSONtext()
  1194. X+ {
  1195. X+     epson_dump();
  1196. X+     b_freebitmap();
  1197. X+ }
  1198. X+ 
  1199. X+ 
  1200. X+ #define EPSONlinetype b_setlinetype
  1201. X+ #define EPSONmove b_move
  1202. X+ #define EPSONvector b_vector
  1203. X+ #define EPSONput_text b_put_text
  1204. X+ #define EPSON_text_angle b_text_angle
  1205. X+ 
  1206. X+ EPSONreset()
  1207. X+ {
  1208. X+ #ifdef vms
  1209. X+     fflush_binary();
  1210. X+ #endif
  1211. X+ }
  1212. X+ 
  1213. X+ 
  1214. X+ /* output file must be binary mode for epson_dump */
  1215. X+ epson_dump()
  1216. X+ {
  1217. X+   register unsigned int x;
  1218. X+   int j;
  1219. X+     for (j=(b_ysize/8)-1; j>=0; j--) {
  1220. X+         /* select plotter graphics mode (square pixels) */
  1221. X+         fprintf(outfile,"\033J\030");    /* line feed 8/72" = 8 dots */
  1222. X+         fprintf(outfile,"\r\033*\005");
  1223. X+         (void) fputc((char)(b_xsize%256),outfile);
  1224. X+         (void) fputc((char)(b_xsize/256),outfile);
  1225. X+         for (x=0; x<b_xsize; x++) {
  1226. X+             (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1227. X+         }
  1228. X+     }
  1229. X+ #ifdef PC
  1230. X+     fprintf(stderr,"Print using: COPY /B\n");
  1231. X+ #endif
  1232. X+ }
  1233. X+ 
  1234. X+ #endif /* EPSON */
  1235. X+ 
  1236. X+ 
  1237. X+ /* The following NEC CP6 Pinwriter driver uses generic bit mapped graphics
  1238. X+    routines to build up a bit map in memory. */
  1239. X+ /* by Russell Lang, rjl@monu1.cc.monash.edu.au */
  1240. X+ /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1241. X+ /* NECinit changes outfile to binary mode for PC's */
  1242. X+ 
  1243. X+ /* Add a Monochrome NEC printer (for faster speed and line types) jdc */
  1244. X+ 
  1245. X+ #ifdef NEC
  1246. X+ 
  1247. X+ #define NECXMAX    400 
  1248. X+ #define NECYMAX    320
  1249. X+ 
  1250. X+ #define NECXLAST (NECXMAX - 1)
  1251. X+ #define NECYLAST (NECYMAX - 1)
  1252. X+ 
  1253. X+ #define NECVCHAR        FNT5X9_VCHAR      
  1254. X+ #define NECHCHAR        FNT5X9_HCHAR        
  1255. X+ #define NECVTIC        6
  1256. X+ #define NECHTIC        6
  1257. X+ 
  1258. X+ /* plane 0=black, 1=cyan(blue), 2=magenta(red), 3=yellow */
  1259. X+ static unsigned int neccolor[] = {1,8,4,2,10,12,6,14};
  1260. X+ static unsigned int necpcolor[]= {0,2,1,4};
  1261. X+ 
  1262. X+ NECinit()
  1263. X+ {
  1264. X+ #ifdef PC
  1265. X+     reopen_binary();
  1266. X+ #endif
  1267. X+ #ifdef vms
  1268. X+     reopen_binary();
  1269. X+ #endif
  1270. X+ }
  1271. X+ 
  1272. X+ 
  1273. X+ /* Monochrome only NEC CP6 printer (set term nec_cp6m or nec_cp6d). */
  1274. X+ /* will probably work with NEC P6 printer */
  1275. X+ NECMgraphics()
  1276. X+ {
  1277. X+     b_charsize(FNT5X9);
  1278. X+     b_makebitmap((unsigned int)(NECXMAX*xsize),
  1279. X+                  (unsigned int)(NECYMAX*ysize),1);
  1280. X+ }
  1281. X+ 
  1282. X+ /* Color ribbon in NEC CP6 printer (set term nec_cp6c) */
  1283. X+ NECCgraphics()
  1284. X+ {
  1285. X+     b_charsize(FNT5X9);
  1286. X+     b_makebitmap((unsigned int)(NECXMAX*xsize),
  1287. X+                  (unsigned int)(NECYMAX*ysize),4);
  1288. X+ }
  1289. X+ 
  1290. X+ 
  1291. X+ NECdraft_text()
  1292. X+ {
  1293. X+     nec_draft_dump();
  1294. X+     b_freebitmap();
  1295. X+ }
  1296. X+ 
  1297. X+ NECtext()
  1298. X+ {
  1299. X+     nec_dump();
  1300. X+     b_freebitmap();
  1301. X+ }
  1302. X+ 
  1303. X+ NECClinetype(linetype)
  1304. X+ int linetype;
  1305. X+ {
  1306. X+     if (linetype>=6)
  1307. X+         linetype %= 6;
  1308. X+     b_setvalue(neccolor[linetype+2]);
  1309. X+ }
  1310. X+ 
  1311. X+ #define NECMlinetype b_setlinetype
  1312. X+ #define NECmove b_move
  1313. X+ #define NECvector b_vector
  1314. X+ #define NECput_text b_put_text
  1315. X+ #define NEC_text_angle b_text_angle
  1316. X+ 
  1317. X+     
  1318. X+ NECreset()
  1319. X+ {
  1320. X+ #ifdef vms
  1321. X+     fflush_binary();
  1322. X+ #endif
  1323. X+ }
  1324. X+ 
  1325. X+ 
  1326. X+ /* output file must be binary mode for nec_dump */
  1327. X+ nec_dump()
  1328. X+ {
  1329. X+ unsigned int x;
  1330. X+ unsigned int plane,offset;
  1331. X+ int j;
  1332. X+ unsigned int column8;
  1333. X+ unsigned long column24;
  1334. X+ char column3, column2, column1;
  1335. X+     fprintf(outfile,"\033P\033l\005");  /* 10cpi, left margin 5 char */
  1336. X+     for (j=(b_ysize/8)-1;j>=0;j--) {
  1337. X+             fprintf(outfile,"\033J\030");  /* 24/180" line feed */
  1338. X+             for (plane=0; plane<b_planes; plane++) {
  1339. X+                 offset=plane*b_psize;
  1340. X+                 if (b_planes>1) {
  1341. X+                     /* select colour for plane */
  1342. X+                     fprintf(outfile,"\033r");
  1343. X+                     (void) fputc((char)necpcolor[plane],outfile);
  1344. X+                 }
  1345. X+                 /* select plotter graphics mode (square pixels) */
  1346. X+                 fprintf(outfile,"\r\033*\047");
  1347. X+                 (void) fputc((char)((b_xsize*3)%256),outfile);
  1348. X+                 (void) fputc((char)((b_xsize*3)/256),outfile);
  1349. X+                 for (x=0; x<b_xsize; x++) {
  1350. X+                     column8= (unsigned int)(*((*b_p)[j+offset]+x));
  1351. X+                     column24=0;
  1352. X+                     if (column8&0x01) column24|=(long)0x000007;
  1353. X+                     if (column8&0x02) column24|=(long)0x000038;
  1354. X+                     if (column8&0x04) column24|=(long)0x0001c0;
  1355. X+                     if (column8&0x08) column24|=(long)0x000e00;
  1356. X+                     if (column8&0x10) column24|=(long)0x007000;
  1357. X+                     if (column8&0x20) column24|=(long)0x038000;
  1358. X+                     if (column8&0x40) column24|=(long)0x1c0000;
  1359. X+                     if (column8&0x80) column24|=(long)0xe00000;
  1360. X+                     column1 = (char) ( column24      & (long)0xff);
  1361. X+                     column2 = (char) ((column24>>8)  & (long)0xff);
  1362. X+                     column3 = (char) ((column24>>16) & (long)0xff);
  1363. X+                     (void) fputc(column3,outfile);
  1364. X+                     (void) fputc(column2,outfile);
  1365. X+                     (void) fputc(column1,outfile);
  1366. X+                     (void) fputc(column3,outfile);
  1367. X+                     (void) fputc(column2,outfile);
  1368. X+                     (void) fputc(column1,outfile);
  1369. X+                     (void) fputc(column3,outfile);
  1370. X+                     (void) fputc(column2,outfile);
  1371. X+                     (void) fputc(column1,outfile);
  1372. X+                 }
  1373. X+             }
  1374. X+     }
  1375. X+     fprintf(outfile,"\r\033l");
  1376. X+     (void) fputc('\0',outfile);                /* set left margin to 0 */
  1377. X+     if (b_planes > 1) {
  1378. X+         fprintf(outfile,"\033r");
  1379. X+         (void) fputc('\0',outfile);                /* set color to black */
  1380. X+     }
  1381. X+ #ifdef PC
  1382. X+     fprintf(stderr,"Print using: COPY /B\n");
  1383. X+ #endif
  1384. X+ #ifdef vms
  1385. X+     fflush_binary();
  1386. X+ #endif
  1387. X+ }
  1388. X+ 
  1389. X+ /* output file must be binary mode for nec_dump */
  1390. X+ nec_draft_dump()
  1391. X+ {
  1392. X+ unsigned int x;
  1393. X+ unsigned int plane,offset;
  1394. X+ int j;
  1395. X+     fprintf(outfile,"\033P\033l\005\r");  /* 10cpi, left margin 5 char */
  1396. X+     for (j=(b_ysize/8)-1;j>=0;j--) {
  1397. X+             fprintf(outfile,"\033J\030");  /* 24/180" line feed */
  1398. X+             for (plane=0; plane<b_planes; plane++) {
  1399. X+                 offset=plane*b_psize;
  1400. X+                 if (b_planes>1) {
  1401. X+                     /* select colour for plane */
  1402. X+                     fprintf(outfile,"\033r");
  1403. X+                     (void) fputc((char)necpcolor[plane],outfile);
  1404. X+                 }
  1405. X+                 /* select plotter graphics mode (square pixels) */
  1406. X+                 fprintf(outfile,"\r\033*");
  1407. X+                 (void) fputc('\0',outfile);
  1408. X+                 (void) fputc((char)(b_xsize%256),outfile);
  1409. X+                 (void) fputc((char)(b_xsize/256),outfile);
  1410. X+                 for (x=0; x<b_xsize; x++) {
  1411. X+                     (void) fputc( (char)(*((*b_p)[j+offset]+x)), outfile );
  1412. X+                 }
  1413. X+             }
  1414. X+     }
  1415. X+     fprintf(outfile,"\r\033l");
  1416. X+     (void) fputc('\0',outfile);                /* set left margin to 0 */
  1417. X+     if (b_planes > 1) {
  1418. X+         fprintf(outfile,"\033r");
  1419. X+         (void) fputc('\0',outfile);                /* set color to black */
  1420. X+     }
  1421. X+ #ifdef PC
  1422. X+     fprintf(stderr,"Print using: COPY /B\n");
  1423. X+ #endif
  1424. X+ }
  1425. X+ 
  1426. X+ #endif /* NEC */
  1427. X+ 
  1428. X+ #ifdef STARC
  1429. X+ /* The following Star color driver uses generic bit mapped graphics
  1430. X+    routines to build up a bit map in memory. */
  1431. X+ /* Star Color changes made by William Wilson, wew@naucse.cse.nau.edu */
  1432. X+ /* On PC, print using 'copy file /b lpt1:', do NOT use 'print' */
  1433. X+ /* STARC_init changes outfile to binary mode on PC's */
  1434. X+ 
  1435. X+ #define STARCXMAX    512 
  1436. X+ #define STARCYMAX    384
  1437. X+ 
  1438. X+ #define STARCXLAST (STARCXMAX - 1)
  1439. X+ #define STARCYLAST (STARCYMAX - 1)
  1440. X+ 
  1441. X+ #define STARCVCHAR        FNT5X9_VCHAR      
  1442. X+ #define STARCHCHAR        FNT5X9_HCHAR        
  1443. X+ #define STARCVTIC        6
  1444. X+ #define STARCHTIC        6
  1445. X+ 
  1446. X+ /* plane 0=black, 1=cyan(blue), 2=magenta(red), 3=yellow */
  1447. X+ static unsigned int STARCcolor[] = {1,8,4,2,10,12,6,14};
  1448. X+ static unsigned int STARCpcolor[]= {0,2,1,4};
  1449. X+ 
  1450. X+ STARCinit()
  1451. X+ {
  1452. X+ #ifdef PC
  1453. X+     reopen_binary();
  1454. X+ #endif
  1455. X+ #ifdef vms
  1456. X+     reopen_binary();
  1457. X+ #endif
  1458. X+ }
  1459. X+ 
  1460. X+ 
  1461. X+ STARCgraphics()
  1462. X+ {
  1463. X+     b_charsize(FNT5X9);
  1464. X+     b_makebitmap((unsigned int)(STARCXMAX*xsize),
  1465. X+                  (unsigned int)(STARCYMAX*ysize),4);
  1466. X+ }
  1467. X+ 
  1468. X+ 
  1469. X+ STARCtext()
  1470. X+ {
  1471. X+     STARC_dump();
  1472. X+     b_freebitmap();
  1473. X+ }
  1474. X+ 
  1475. X+ STARClinetype(linetype)
  1476. X+ int linetype;
  1477. X+ {
  1478. X+     if (linetype>=6)
  1479. X+         linetype %= 6;
  1480. X+     b_setvalue(STARCcolor[linetype+2]);
  1481. X+ }
  1482. X+ 
  1483. X+ 
  1484. X+ #define STARCmove b_move
  1485. X+ #define STARCvector b_vector
  1486. X+ #define STARCput_text b_put_text
  1487. X+ #define STARC_text_angle b_text_angle
  1488. X+ 
  1489. X+ STARCreset()
  1490. X+ {
  1491. X+ #ifdef vms
  1492. X+     fflush_binary();
  1493. X+ #endif
  1494. X+ }
  1495. X+ 
  1496. X+ 
  1497. X+ /* output file must be binary mode for STARC_dump */
  1498. X+ STARC_dump()
  1499. X+ {
  1500. X+ unsigned int x;
  1501. X+ unsigned int plane,offset;
  1502. X+ int j;
  1503. X+     for (j=(b_ysize/8)-1;j>=0;j--) {
  1504. X+         fprintf(outfile,"\033J\030");    /* line feed 8/72" = 8 dots */
  1505. X+         for (plane=0; plane<b_planes; plane++) {
  1506. X+             offset=plane*b_psize;
  1507. X+             if (b_planes>1) {
  1508. X+                 /* select colour for plane */
  1509. X+                 fprintf(outfile,"\033r");
  1510. X+                 (void) fputc((char)STARCpcolor[plane],outfile);
  1511. X+             }
  1512. X+             /* select plotter graphics mode (square pixels) */
  1513. X+             fprintf(outfile,"\r\033*\005");
  1514. X+             (void) fputc((char)(b_xsize%256),outfile);
  1515. X+             (void) fputc((char)(b_xsize/256),outfile);
  1516. X+             for (x=0; x<b_xsize; x++) {
  1517. X+                 (void) fputc( (char)(*((*b_p)[j+offset]+x)), outfile );
  1518. X+             }
  1519. X+         }
  1520. X+     }
  1521. X+     if (b_planes > 1) {
  1522. X+         fprintf(outfile,"\033r");
  1523. X+         (void) fputc('\0',outfile);                /* set color to black */
  1524. X+     }
  1525. X+ #ifdef PC
  1526. X+     fprintf(stderr,"Print using: COPY /B\n");
  1527. X+ #endif
  1528. X+ }
  1529. X+ 
  1530. X+ #endif /* STARC */
  1531. X+ 
  1532. X+ 
  1533. X+ #ifdef EPS60
  1534. X+ 
  1535. X+ /* make the total dimensions 8 inches by 5 inches */
  1536. X+ #define EPS60XMAX    480
  1537. X+ #define EPS60YMAX    360
  1538. X+ 
  1539. X+ #define EPS60XLAST (EPS60XMAX - 1)
  1540. X+ #define EPS60YLAST (EPS60YMAX - 1)
  1541. X+ 
  1542. X+ EPS60graphics()
  1543. X+ {
  1544. X+     b_charsize(FNT5X9);
  1545. X+     b_makebitmap((unsigned int)(EPS60XMAX*xsize),
  1546. X+                  (unsigned int)(EPS60YMAX*ysize),1);
  1547. X+ }
  1548. X+ 
  1549. X+ 
  1550. X+ EPS60text()
  1551. X+ {
  1552. X+     eps60_dump();
  1553. X+     b_freebitmap();
  1554. X+ }
  1555. X+ 
  1556. X+ 
  1557. X+ 
  1558. X+ /* output file must be binary mode for eps60_dump */
  1559. X+ eps60_dump()
  1560. X+ {
  1561. X+   register unsigned int x;
  1562. X+   int j;
  1563. X+     fprintf(outfile,"\033%c\030",'3'); /* set line spacing 24/216" = 8 dots */
  1564. X+     for (j=(b_ysize/8)-1; j>=0; j--) {
  1565. X+         /* select printer graphics mode 'K' */
  1566. X+         fprintf(outfile,"\r\n\033K");
  1567. X+         (void) fputc((char)(b_xsize%256),outfile);
  1568. X+         (void) fputc((char)(b_xsize/256),outfile);
  1569. X+         for (x=0; x<b_xsize; x++) {
  1570. X+             (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1571. X+         }
  1572. X+     }
  1573. X+     fprintf(outfile,"\033%c\044\r\n",'3'); /* set line spacing 36/216" = 1/6" */
  1574. X+ #ifdef PC
  1575. X+     fprintf(stderr,"Print using: COPY /B\n");
  1576. X+ #endif
  1577. X+ }
  1578. X+ 
  1579. X+ #endif /* EPS60 */
  1580. X+ 
  1581. X+ #ifdef TANDY60
  1582. X+ 
  1583. X+ /* The only difference between TANDY60 and EPS60 is the inclusion
  1584. X+    of codes to swap the Tandy printer into IBM mode and back
  1585. X+    into Tandy mode.  For a Tandy already in IBM mode, use EPS60. */
  1586. X+ 
  1587. X+ 
  1588. X+ TANDY60text()
  1589. X+ {
  1590. X+ #ifdef PC
  1591. X+     fprintf(stderr, "Inserting Tandy/IBM mode conversion codes\n");
  1592. X+ #endif
  1593. X+     /* Switch to IBM mode, and leave 3 inches above the plot so as
  1594. X+        to get rough vertical centring on the page.  Perform the
  1595. X+        centring by setting 1" line feeds and issuing 3 of them. */
  1596. X+     fprintf(outfile, "\033!\033%c%c\n\n\n", '3',216);
  1597. X+     eps60_dump();
  1598. X+     b_freebitmap();
  1599. X+     /* A form feed must be sent before switching back to Tandy mode,
  1600. X+        or else the form setting will be messed up. */
  1601. X+     fprintf(outfile, "\f\033!");
  1602. X+ }
  1603. X+ 
  1604. X+ 
  1605. X+ #endif  /* TANDY60 */
  1606. XOnly in ./term: hpljet.trm
  1607. Xdiff -cr ./term/hpljii.trm ../gnuplot2.02/term/hpljii.trm
  1608. X*** ./term/hpljii.trm    Fri Nov 23 17:50:38 1990
  1609. X--- ../gnuplot2.02/term/hpljii.trm    Thu Dec  6 13:10:09 1990
  1610. X***************
  1611. X*** 0
  1612. X
  1613. X--- 1,235 -----
  1614. X+ /* GNUPLOT - hpljii.trm */
  1615. X+ /*
  1616. X+  * Copyright (C) 1990   
  1617. X+  *
  1618. X+  * Permission to use, copy, and distribute this software and its
  1619. X+  * documentation for any purpose with or without fee is hereby granted, 
  1620. X+  * provided that the above copyright notice appear in all copies and 
  1621. X+  * that both that copyright notice and this permission notice appear 
  1622. X+  * in supporting documentation.
  1623. X+  *
  1624. X+  * Permission to modify the software is granted, but not the right to
  1625. X+  * distribute the modified code.  Modifications are to be distributed 
  1626. X+  * as patches to released version.
  1627. X+  *  
  1628. X+  * This software  is provided "as is" without express or implied warranty.
  1629. X+  * 
  1630. X+  * This file is included by ../term.c.
  1631. X+  *
  1632. X+  * This terminal driver supports:
  1633. X+  *  hpljii_75dpi, hpljii_100dpi, hpljii_150dpi, hpljii_300dpi
  1634. X+  *
  1635. X+  * AUTHORS
  1636. X+  *  John Engels
  1637. X+  *  Russell Lang
  1638. X+  *
  1639. X+  * send your comments or suggestions to (pixar!info-gnuplot@sun.com).
  1640. X+  * 
  1641. X+  */
  1642. X+ 
  1643. X+ /* The following HP laserjet series II driver uses generic bit mapped graphics
  1644. X+    routines from bitmap.c to build up a bit map in memory.  The driver
  1645. X+    interchanges colomns and lines in order to access entire lines
  1646. X+    easily and returns the lines to get bits in the right order :
  1647. X+    (x,y) -> (y,XMAX-1-x). */
  1648. X+ /* This interchange is done by calling b_makebitmap() with reversed 
  1649. X+    xmax and ymax, and then setting b_rastermode to TRUE.  b_setpixel()
  1650. X+    will then perform the interchange before each pixel is plotted */
  1651. X+ /* by John Engels JENGELS@BNANDP51.BITNET, inspired by the hpljet driver
  1652. X+    of Jyrki Yli-Nokari */
  1653. X+ 
  1654. X+ #ifdef HPLJII
  1655. X+ 
  1656. X+ /* We define 4 different print qualities : 300ppi, 150ppi, 100ppi and
  1657. X+    75ppi.  (Pixel size = 1, 2, 3, 4 dots) */
  1658. X+ 
  1659. X+ #define HPLJII_DPP (hplj_dpp)   /* dots per pixel */
  1660. X+ #define HPLJII_PPI (300/HPLJII_DPP) /* pixel per inch */
  1661. X+ #define HPLJII_XMAX (8*(unsigned int)(xsize*1920/HPLJII_DPP/8.0+0.9))
  1662. X+ #define HPLJII_YMAX (8*(unsigned int)(ysize*1920/HPLJII_DPP/8.0+0.9))
  1663. X+ #define HPLJII_300PPI_XMAX (1920/1)
  1664. X+ #define HPLJII_300PPI_YMAX (1920/1)
  1665. X+ #define HPLJII_150PPI_XMAX (1920/2)
  1666. X+ #define HPLJII_150PPI_YMAX (1920/2)
  1667. X+ #define HPLJII_100PPI_XMAX (1920/3)
  1668. X+ #define HPLJII_100PPI_YMAX (1920/3)
  1669. X+ #define HPLJII_75PPI_XMAX (1920/4)
  1670. X+ #define HPLJII_75PPI_YMAX (1920/4)
  1671. X+ 
  1672. X+ #define HPLJII_XLAST (HPLJII_XMAX-1)
  1673. X+ #define HPLJII_YLAST (HPLJII_YMAX-1)
  1674. X+ 
  1675. X+ #define HPLJII_VCHAR (HPLJII_PPI/6) /* Courier font with 6 lines per inch */
  1676. X+ #define HPLJII_HCHAR (HPLJII_PPI/10) /* Courier font with 10 caracters
  1677. X+                                         per inch */
  1678. X+ #define HPLJII_300PPI_VCHAR (300/6)
  1679. X+ #define HPLJII_300PPI_HCHAR (300/10)
  1680. X+ #define HPLJII_150PPI_VCHAR (150/6)
  1681. X+ #define HPLJII_150PPI_HCHAR (150/10)
  1682. X+ #define HPLJII_100PPI_VCHAR (100/6)
  1683. X+ #define HPLJII_100PPI_HCHAR (100/10)
  1684. X+ #define HPLJII_75PPI_VCHAR (75/6)
  1685. X+ #define HPLJII_75PPI_HCHAR (75/10)
  1686. X+ 
  1687. X+ #define HPLJII_300PPI_VTIC 8 /* Use smaller tics with greater resolution */
  1688. X+ #define HPLJII_300PPI_HTIC 8
  1689. X+ #define HPLJII_150PPI_VTIC 6
  1690. X+ #define HPLJII_150PPI_HTIC 6
  1691. X+ #define HPLJII_100PPI_VTIC 6
  1692. X+ #define HPLJII_100PPI_HTIC 6
  1693. X+ #define HPLJII_75PPI_VTIC 5
  1694. X+ #define HPLJII_75PPI_HTIC 5
  1695. X+ 
  1696. X+ #define HPLJII_PUSH_CURSOR fprintf(outfile,"\033&f0S") /* Save current
  1697. X+                   cursor position */
  1698. X+ #define HPLJII_POP_CURSOR fprintf(outfile,"\033&f1S") /* Restore
  1699. X+                   cursor position */
  1700. X+ #define HPLJII_COURIER fprintf(outfile,"\033(0N\033(s0p10.0h12.0v0s0b3T\033&l6D")
  1701. X+          /* be sure to use courier font with 6lpi and 10cpi */
  1702. X+ 
  1703. X+ static int hplj_dpp;
  1704. X+ /* bm_pattern not appropriate for 300ppi graphics */
  1705. X+ static unsigned int b_300ppi_pattern[] = {0xffff, 0x1111,
  1706. X+         0xffff, 0x3333, 0x0f0f, 0x3f3f, 0x0fff, 0x00ff, 0x33ff};
  1707. X+ 
  1708. X+ HPLJIIinit()
  1709. X+ {
  1710. X+ #ifdef vms
  1711. X+    reopen_binary();
  1712. X+ #endif /* vms */
  1713. X+ #ifdef PC
  1714. X+    reopen_binary();
  1715. X+ #endif /* PC */
  1716. X+ }
  1717. X+ 
  1718. X+ HPLJII_300PPIgraphics()
  1719. X+ {
  1720. X+    hplj_dpp = 1;
  1721. X+    HPLJIIgraphics();
  1722. X+ }
  1723. X+ 
  1724. X+ HPLJII_150PPIgraphics()
  1725. X+ {
  1726. X+    hplj_dpp = 2;
  1727. X+    HPLJIIgraphics();
  1728. X+ }
  1729. X+ 
  1730. X+ HPLJII_100PPIgraphics()
  1731. X+ {
  1732. X+    hplj_dpp = 3;
  1733. X+    HPLJIIgraphics();
  1734. X+ }
  1735. X+ 
  1736. X+ HPLJII_75PPIgraphics()
  1737. X+ {
  1738. X+    hplj_dpp = 4;
  1739. X+    HPLJIIgraphics();
  1740. X+ }
  1741. X+ 
  1742. X+ HPLJIIgraphics()
  1743. X+ {
  1744. X+    HPLJII_COURIER;
  1745. X+    HPLJII_PUSH_CURSOR;
  1746. X+    /* rotate plot -90 degrees by reversing XMAX and YMAX and by 
  1747. X+       setting b_rastermode to TRUE */
  1748. X+    b_makebitmap(HPLJII_YMAX,HPLJII_XMAX,1);
  1749. X+    b_rastermode = TRUE;
  1750. X+ }
  1751. X+ 
  1752. X+ 
  1753. X+ /* HPLJIItext by rjl - no compression */
  1754. X+ HPLJIItext()
  1755. X+ {
  1756. X+   register int x,j,row;
  1757. X+ 
  1758. X+    fprintf(outfile,"\033*t%dR", HPLJII_PPI);
  1759. X+    HPLJII_POP_CURSOR;
  1760. X+    fprintf(outfile, "\033*r1A");
  1761. X+ 
  1762. X+    /* dump bitmap in raster mode */
  1763. X+    for (x = b_xsize-1; x >= 0; x--) {
  1764. X+       row = (b_ysize/8)-1;
  1765. X+       fprintf(outfile, "\033*b2m%dW", b_ysize/8);
  1766. X+       for (j = row; j >= 0; j--) {
  1767. X+          (void) fputc( (char)(*((*b_p)[j]+x)), outfile );
  1768. X+       }
  1769. X+    }
  1770. X+    fprintf(outfile, "\033*rB");
  1771. X+ 
  1772. X+    b_freebitmap();
  1773. X+ 
  1774. X+ #ifndef vms  /* most vms spoolers add a formfeed character */
  1775. X+    fprintf(outfile,"\f");
  1776. X+ #endif /* not vms */
  1777. X+ }
  1778. X+ 
  1779. X+ 
  1780. X+ 
  1781. X+ HPLJIIlinetype(linetype)
  1782. X+ int linetype;
  1783. X+ {
  1784. X+ 
  1785. X+    if (hplj_dpp == 1) {
  1786. X+       if (linetype>=7)
  1787. X+           linetype %= 7;
  1788. X+       /* b_pattern not appropriate for 300ppi graphics */
  1789. X+       b_linemask = b_300ppi_pattern[linetype+2];
  1790. X+       b_maskcount=0;
  1791. X+    }
  1792. X+    else {
  1793. X+       b_setlinetype(linetype);
  1794. X+    }
  1795. X+ }
  1796. X+ 
  1797. X+ #define HPLJIImove b_move
  1798. X+ #define HPLJIIvector b_vector
  1799. X+ #define HPLJIItext_angle b_text_angle
  1800. X+ 
  1801. X+ HPLJIIput_text(x,y,str)
  1802. X+ unsigned int x, y;
  1803. X+ char *str;
  1804. X+ {
  1805. X+    switch (b_angle) {
  1806. X+       case 0:
  1807. X+          y -= HPLJII_VCHAR/5;
  1808. X+          HPLJII_POP_CURSOR;
  1809. X+          HPLJII_PUSH_CURSOR;
  1810. X+          /* (0,0) is the upper left point of the paper */
  1811. X+          fprintf(outfile, "\033*p%+dx%+dY", x*HPLJII_DPP
  1812. X+                                          ,  (HPLJII_YMAX-y-1)*HPLJII_DPP );
  1813. X+          fputs(str, outfile);
  1814. X+ /*       for (; *str; ++str, x += HPLJII_HCHAR)
  1815. X+             HPLJIIputc (x, y, *str, b_angle);*/
  1816. X+          break;
  1817. X+       case 1:
  1818. X+          y += (HPLJII_HCHAR-2*HPLJII_VCHAR)/2;
  1819. X+          y += (HPLJII_VCHAR+HPLJII_HCHAR)*strlen(str)/2;
  1820. X+          for (; *str; ++str, y -= HPLJII_VCHAR)
  1821. X+             HPLJIIputc (x, y, *str, b_angle);
  1822. X+          break;
  1823. X+    }
  1824. X+ }
  1825. X+ 
  1826. X+ HPLJIIputc(x,y,c,angle)
  1827. X+ unsigned int x,y;
  1828. X+ int angle;
  1829. X+ char c;
  1830. X+ {
  1831. X+    HPLJII_POP_CURSOR;
  1832. X+    HPLJII_PUSH_CURSOR;
  1833. X+    /* (0,0) is the upper left point of the paper */
  1834. X+    fprintf(outfile, "\033*p%+dx%+dY", x*HPLJII_DPP
  1835. X+                                    ,  (HPLJII_YMAX-y-1)*HPLJII_DPP );
  1836. X+    fputc(c, outfile);
  1837. X+ }
  1838. X+ 
  1839. X+ 
  1840. X+ HPLJIIreset()
  1841. X+ {
  1842. X+ #ifdef vms
  1843. X+    fflush_binary();
  1844. X+ #endif /* vms */
  1845. X+ }
  1846. X+ 
  1847. X+ #endif /* HPLJII */
  1848. X+ 
  1849. Xdiff -cr ./term/kyo.trm ../gnuplot2.02/term/kyo.trm
  1850. X*** ./term/kyo.trm    Fri Nov 23 17:50:44 1990
  1851. X--- ../gnuplot2.02/term/kyo.trm    Mon Dec  3 17:17:07 1990
  1852. X***************
  1853. X*** 0
  1854. X
  1855. X--- 1,107 -----
  1856. X+ /* Prescribe (KYOCERA) driver - Michael Waldor */
  1857. X+ /* Modified for gnuplot 2.0 sk@sun4 24-Apr-1990 13:23 */
  1858. X+ #ifdef PRESCRIBE
  1859. X+ 
  1860. X+ #define PRE_XMAX 2567
  1861. X+ #define PRE_YMAX 1815    /* X:Y = sqrt(2) */
  1862. X+ 
  1863. X+ #define PRE_XLAST (PRE_XMAX - 1)
  1864. X+ #define PRE_YLAST (PRE_YMAX - 1)
  1865. X+ 
  1866. X+ #define PRE_VCHAR (PRE_YMAX/30)
  1867. X+ #define PRE_HCHAR 33    /* about 9 chars per inch */
  1868. X+ #define PRE_HTIC (PRE_XMAX/80)
  1869. X+ #define PRE_VTIC PRE_HTIC
  1870. X+ 
  1871. X+ /* for Courier font: */
  1872. X+ #define KYO_VCHAR (14*(300/72))    /* 12 pt + 2 pt baselineskip */
  1873. X+ #define KYO_HCHAR (300/10)    /*  10 chars per inch */
  1874. X+ 
  1875. X+ enum JUSTIFY pre_justify=LEFT;    /* text is flush left */
  1876. X+ 
  1877. X+ PRE_init()
  1878. X+ {
  1879. X+   (void) fprintf(outfile,"!R! RES;\n") ;
  1880. X+   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  1881. X+   /* SPO: landscape format */
  1882. X+   /* STM, SLM set top, left margin*/
  1883. X+   /* Font: bold Helvetica (proportional font) */
  1884. X+   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  1885. X+   (void) fprintf(outfile,"FTMD 15; FONT 29; SCPI 9;\n") ;
  1886. X+ }
  1887. X+ 
  1888. X+ KYO_init()
  1889. X+ {
  1890. X+   (void) fprintf(outfile,"!R! RES;\n") ;
  1891. X+   /* UNIT: units are dots, 300 dots = 1 in = 72 pt */
  1892. X+   /* SPO: landscape format */
  1893. X+   /* STM, SLM set top, left margin */
  1894. X+   /* Font: Courier (fixed width font) */
  1895. X+   (void) fprintf(outfile,"PAGE; UNIT D; SPO L; STM 280; SLM 440;\n") ;
  1896. X+   (void) fprintf(outfile,"FTMD 15; FONT 17; SCPI 10;\n") ;
  1897. X+ }
  1898. X+ 
  1899. X+ PRE_graphics()
  1900. X+ {
  1901. X+ }
  1902. X+ 
  1903. X+ PRE_text()            /* eject page after each plot */
  1904. X+ {
  1905. X+   (void) fprintf(outfile,"PAGE;\n") ; 
  1906. X+ }
  1907. X+ 
  1908. X+ PRE_linetype(linetype)
  1909. X+ int linetype ;
  1910. X+ {
  1911. X+   /* actually choose pendiameter */
  1912. X+   if (linetype < 0) linetype = -linetype;
  1913. X+   else linetype = 3;
  1914. X+   (void) fprintf(outfile,"SPD %d;\n", linetype) ;
  1915. X+ }
  1916. X+  
  1917. X+ PRE_move(x,y)
  1918. X+ unsigned int x,y ;
  1919. X+ {
  1920. X+   (void) fprintf(outfile,"MAP %1d,%1d;\n",x,PRE_YMAX-y) ;
  1921. X+ }
  1922. X+  
  1923. X+ PRE_vector(x,y)
  1924. X+ unsigned int x,y ;
  1925. X+ {
  1926. X+   (void) fprintf(outfile,"DAP %1d, %1d;\n",x,PRE_YMAX-y) ;
  1927. X+ }
  1928. X+  
  1929. X+ PRE_put_text(x, y, str)
  1930. X+ unsigned int x,y ;
  1931. X+ char *str;
  1932. X+ {
  1933. X+   PRE_move(x,y);
  1934. X+   switch(pre_justify){
  1935. X+   case RIGHT:
  1936. X+     (void) fprintf(outfile,"RTXT \"%s\", B;\n",str) ;
  1937. X+     break;
  1938. X+   default:
  1939. X+     (void) fprintf(outfile,"TEXT \"%s\", B;\n",str) ;
  1940. X+   }
  1941. X+ }
  1942. X+  
  1943. X+ int PRE_justify_text(mode)
  1944. X+ enum JUSTIFY mode;
  1945. X+ {
  1946. X+   pre_justify=mode;
  1947. X+   switch(pre_justify){
  1948. X+   case LEFT:
  1949. X+   case RIGHT:
  1950. X+     return(TRUE);
  1951. X+   default:
  1952. X+     return(FALSE);
  1953. X+   }
  1954. X+   
  1955. X+ }
  1956. X+ 
  1957. X+ PRE_reset()
  1958. X+ {
  1959. X+   (void) fprintf(outfile,"PAGE; RES; EXIT;\n");
  1960. X+ }
  1961. X+ 
  1962. X+ #endif /* PRESCRIBE */
  1963. Xdiff -cr ./term/pc.trm ../gnuplot2.02/term/pc.trm
  1964. X*** ./term/pc.trm    Tue Sep 18 14:59:12 1990
  1965. X--- ../gnuplot2.02/term/pc.trm    Thu Dec  6 16:08:17 1990
  1966. X***************
  1967. X*** 61,68
  1968. X  int startx, starty;
  1969. X  
  1970. X  int pc_angle;
  1971. X! #define PC_VCHAR 11
  1972. X! #define PC_HCHAR 7
  1973. X  
  1974. X  pause()                                /* press any key to continue... */
  1975. X  {
  1976. X
  1977. X--- 61,68 -----
  1978. X  int startx, starty;
  1979. X  
  1980. X  int pc_angle;
  1981. X! #define PC_VCHAR FNT5X9_VCHAR
  1982. X! #define PC_HCHAR FNT5X9_HCHAR
  1983. X  
  1984. X  pause()                                /* press any key to continue... */
  1985. X  {
  1986. X***************
  1987. X*** 105,113
  1988. X  int i,j,k;
  1989. X  unsigned int pixelon;
  1990. X      i = (int)(c) - 32;
  1991. X!     for (j=0; j<9; j++) {
  1992. X!         for (k=0; k<5; k++) {
  1993. X!             pixelon = (((unsigned int)(font5x7[i][j])) >> k & 1);
  1994. X              if (pixelon) {
  1995. X                  switch(angle) {
  1996. X                      case 0 : (*line_func)(x+k+1,y-j,x+k+1,y-j);
  1997. X
  1998. X--- 105,113 -----
  1999. X  int i,j,k;
  2000. X  unsigned int pixelon;
  2001. X      i = (int)(c) - 32;
  2002. X!     for (j=0; j<FNT5X9_VBITS; j++) {
  2003. X!         for (k=0; k<FNT5X9_HBITS; k++) {
  2004. X!             pixelon = (((unsigned int)(fnt5x9[i][j])) >> k & 1);
  2005. X              if (pixelon) {
  2006. X                  switch(angle) {
  2007. X                      case 0 : (*line_func)(x+k+1,y-j,x+k+1,y-j);
  2008. Xdiff -cr ./term/tek.trm ../gnuplot2.02/term/tek.trm
  2009. X*** ./term/tek.trm    Tue Mar 27 09:03:10 1990
  2010. X--- ../gnuplot2.02/term/tek.trm    Mon Nov 12 12:23:24 1990
  2011. X***************
  2012. X*** 55,60
  2013. X  
  2014. X  TEK40graphics()
  2015. X  {
  2016. X      fprintf(outfile,"\033\014");
  2017. X  /*                   1
  2018. X      1. clear screen
  2019. X
  2020. X--- 55,63 -----
  2021. X  
  2022. X  TEK40graphics()
  2023. X  {
  2024. X+ #ifdef vms
  2025. X+     term_pasthru();
  2026. X+ #endif /* vms */
  2027. X      fprintf(outfile,"\033\014");
  2028. X  /*                   1
  2029. X      1. clear screen
  2030. X***************
  2031. X*** 72,77
  2032. X  /*                   1
  2033. X      1. into alphanumerics
  2034. X  */
  2035. X  }
  2036. X  
  2037. X  
  2038. X
  2039. X--- 75,83 -----
  2040. X  /*                   1
  2041. X      1. into alphanumerics
  2042. X  */
  2043. X+ #ifdef vms
  2044. X+     term_nopasthru();
  2045. X+ #endif /* vms */
  2046. X  }
  2047. X  
  2048. X  
  2049. X***************
  2050. X*** 177,182
  2051. X  
  2052. X  KTEK40graphics()
  2053. X  {
  2054. X      fprintf(outfile,"\033\014");
  2055. X  /*                   1
  2056. X      1. clear screen
  2057. X
  2058. X--- 183,192 -----
  2059. X  
  2060. X  KTEK40graphics()
  2061. X  {
  2062. X+ #ifdef vms
  2063. X+         term_mode_tek();
  2064. X+     term_pasthru();
  2065. X+ #endif /* vms */
  2066. X      fprintf(outfile,"\033\014");
  2067. X  /*                   1
  2068. X      1. clear screen
  2069. X***************
  2070. X*** 188,193
  2071. X  {
  2072. X      TEK40text();
  2073. X      KTEK40Clinetype(0);  /* change to green */
  2074. X  }
  2075. X  
  2076. X  /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */
  2077. X
  2078. X--- 198,206 -----
  2079. X  {
  2080. X      TEK40text();
  2081. X      KTEK40Clinetype(0);  /* change to green */
  2082. X+ #ifdef vms
  2083. X+     term_nopasthru();
  2084. X+ #endif /* vms */
  2085. X  }
  2086. X  
  2087. X  /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */
  2088. X***************
  2089. X*** 225,230
  2090. X  KTEK40reset()
  2091. X  {
  2092. X      fprintf(outfile,"\030\n");  /* turn off Tek emulation */
  2093. X  }
  2094. X  
  2095. X  #endif /* KERMIT */
  2096. X
  2097. X--- 238,246 -----
  2098. X  KTEK40reset()
  2099. X  {
  2100. X      fprintf(outfile,"\030\n");  /* turn off Tek emulation */
  2101. X+ #ifdef vms
  2102. X+     term_mode_native();
  2103. X+ #endif /* vms */
  2104. X  }
  2105. X  
  2106. X  #endif /* KERMIT */
  2107. X***************
  2108. X*** 276,278
  2109. X  }
  2110. X  #endif /* SELANAR */
  2111. X  
  2112. X
  2113. X--- 292,345 -----
  2114. X  }
  2115. X  #endif /* SELANAR */
  2116. X  
  2117. X+ #ifdef VTTEK
  2118. X+ 
  2119. X+ VTTEK40init()
  2120. X+ {
  2121. X+         fprintf(outfile,"\033[?38h");
  2122. X+         fflush(outfile);
  2123. X+         sleep(1);
  2124. X+         /* sleep 1 second to allow screen time to clear on some terminals */
  2125. X+ #ifdef vms
  2126. X+         term_mode_tek();
  2127. X+ #endif /* vms */
  2128. X+ }
  2129. X+ 
  2130. X+ VTTEK40reset()
  2131. X+ {
  2132. X+         fprintf(outfile,"\033[?38l");
  2133. X+         fflush(outfile);
  2134. X+         sleep(1);
  2135. X+         /* sleep 1 second to allow screen time to clear on some terminals */
  2136. X+ #ifdef vms
  2137. X+         term_mode_native();
  2138. X+ #endif /* vms */
  2139. X+ }
  2140. X+ 
  2141. X+ /* linetypes for VT-type terminals in tektronix emulator mode */
  2142. X+ /* `=solid, a=fine dots, b=short dashes, c=dash dot,
  2143. X+    d=long dash dot, h=bold solid, i=bold fine dots, j=bold short dashes,
  2144. X+    k=bold dash dot, l=bold long dash dot */
  2145. X+ static char *vt_linetype = "`a`abcdhijkl" ;
  2146. X+ static int last_vt_linetype = 0;
  2147. X+ VTTEK40linetype(linetype)
  2148. X+ int linetype;
  2149. X+ {
  2150. X+         if (linetype >= 10)
  2151. X+                 linetype %= 10;
  2152. X+         fprintf(outfile,"\033%c",vt_linetype[linetype+2]);
  2153. X+         last_vt_linetype = linetype;
  2154. X+ }
  2155. X+ 
  2156. X+ VTTEK40put_text(x,y,str)
  2157. X+ unsigned int x,y;
  2158. X+ char str[];
  2159. X+ {
  2160. X+         int linetype;
  2161. X+         linetype = last_vt_linetype;
  2162. X+         VTTEK40linetype(0);
  2163. X+         TEK40put_text(x,y,str);
  2164. X+         VTTEK40linetype(linetype);
  2165. X+ }
  2166. X+ 
  2167. X+ #endif /* VTTEK */
  2168. END_OF_patch2f
  2169. if test 59778 -ne `wc -c <patch2f`; then
  2170.     echo shar: \"patch2f\" unpacked with wrong size!
  2171. fi
  2172. # end of overwriting check
  2173. fi
  2174. echo shar: End of shell archive.
  2175. exit 0
  2176.  
  2177. exit 0 # Just in case...
  2178. -- 
  2179. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  2180. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  2181. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  2182. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  2183.